1 using UnityEngine;
2 using
System.Collections.Generic;
3 using
System.Xml;
4 using
System.IO;
5
6 namespace
GamePlay
7 {
8
9     
public class Animals : MonoBehaviour
10     {
11         
private List<GameObject> animals;
12         
public GameScreen gameScreen;
13
14         
public void Start()
15         {
16             
string[] names = new string[] { "dog", "monkey", "pig", "fox", "giraffe", "panda", "rhino", "tiger", "elephant", "lion" };
17             
18             animals =
new List<GameObject>();
19             
int animalIndex = 0;
20
21             UpgradeInfo upgradeInfo =
new UpgradeInfo();
22
23             GameObject animalPlayer = (GameObject)Instantiate(Resources.Load<GameObject>(
"Animals/" + names[Attr.currentAnimal]));
24             animalPlayer.transform.parent = gameObject.transform;
25             animalPlayer.transform.localPosition =
new Vector3(-3.5f + 0.7f * animalIndex, -0.9f, 0);
26             setSortingLayer(animalPlayer,
"Animal8");
27             Animal player = animalPlayer.AddComponent<Animal>();
28             player.setAnimalName(names[Attr.currentAnimal]);
29             player.animalIndex = animalIndex;
30             player.gameScreen = gameScreen;
31             
float speedPlayer = upgradeInfo.getItem(Attr.currentAnimal, 0, false);
32             
float jumpPlayer = upgradeInfo.getItem(Attr.currentAnimal, 1, false);
33             player.setAnimalProperties(speedPlayer, jumpPlayer);
34             animalPlayer.layer = LayerMask.NameToLayer(
"Animal1");
35
36             animals.Add(animalPlayer);
37             animalIndex++;
38
39             animalPlayer.GetComponent<Animator>().Play(
"run");
40             
//animalPlayer.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, true);
41
42             TextAsset xml = Resources.Load<TextAsset>(
"Levels/WorldMap" + (Attr.currentWorld + 1));
43             XmlDocument xmlDoc =
new XmlDocument();
44             xmlDoc.Load(
new StringReader(xml.text));
45
46             XmlNodeList xmlNodeList = xmlDoc.DocumentElement.ChildNodes;
47             XmlNodeList levelNodeList = xmlNodeList.Item(Attr.currentLevel).ChildNodes;
48             
for (int i = 0; i < levelNodeList.Count; i++)
49             {
50                 
int numberAnimal = int.Parse(levelNodeList.Item(i).Attributes.Item(0).Value);
51                 
string animalName = levelNodeList.Item(i).Attributes.Item(1).Value.ToLower();
52
53                 
for (int k = 0; k < numberAnimal; k++)
54                 {
55                     GameObject animalObject = (GameObject)Instantiate(Resources.Load<GameObject>(
"Animals/" + animalName));
56                     animalObject.transform.parent = gameObject.transform;
57                     animalObject.transform.localPosition =
new Vector3(-3.5f + 0.7f*animalIndex, -0.9f, 0);
58                     setSortingLayer(animalObject,
"Animal" + animalIndex);
59                     Animal animal = animalObject.AddComponent<Animal>();
60                     animal.setAnimalName(animalName.ToLower() +
"_blue");
61                     animal.animalIndex = animalIndex;
62                     animal.gameScreen = gameScreen;
63                     
float speed = upgradeInfo.getSpeed(i);
64                     
float jump = upgradeInfo.getJump(i);
65                     animal.setAnimalProperties(speed, jump);
66                     animalObject.layer = LayerMask.NameToLayer(
"Animal" + (animalIndex + 1));
67                     animals.Add(animalObject);
68                     animalIndex++;
69
70                     animalObject.GetComponent<Animator>().Play(
"run_blue");
71
72                     
//animalObject.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, false);
73                 }
74             }
75         }
76
77         
private void setSortingLayer(GameObject gObject, string sortingLayerName)
78         {
79             Transform[] transforms = gObject.GetComponentsInChildren<Transform>(
true);
80             
for (int i = 0; i < transforms.Length; i++)
81             {
82                 
if (transforms[i].GetComponent<SpriteRenderer>() != null)
83                     transforms[i].GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
84             }
85         }
86
87         
public GameObject getAnimal(int animalIndex)
88         {
89             
return animals[animalIndex];
90         }
91
92         
public void setRunning(bool isRunning)
93         {
94             
for (int i = 0; i < animals.Count; i++)
95             {
96                 animals[i].GetComponent<Animal>().setRunning(isRunning);
97             }
98         }
99     }
100
101 }


animalPlayer.GetComponent().SetBool(Animal.IS_PLAYER, true);

animalObject.GetComponent().SetBool(Animal.IS_PLAYER, false);




Trò chơi đua xe động vật trong UNITY Engine 114.914 lượt xem

Gõ tìm kiếm nhanh...